home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / AIFF.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  4.8 KB  |  229 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        AIFF.p
  3.  
  4.      Contains:    Definition of AIFF file format components.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1989-1997, 1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT AIFF;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __AIFF__}
  28. {$SETC __AIFF__ := 1}
  29.  
  30. {$I+}
  31. {$SETC AIFFIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37.  
  38.  
  39. {$PUSH}
  40. {$ALIGN MAC68K}
  41. {$LibExport+}
  42.  
  43.  
  44. CONST
  45.     AIFFID                        = 'AIFF';
  46.     AIFCID                        = 'AIFC';
  47.     FormatVersionID                = 'FVER';
  48.     CommonID                    = 'COMM';
  49.     FORMID                        = 'FORM';
  50.     SoundDataID                    = 'SSND';
  51.     MarkerID                    = 'MARK';
  52.     InstrumentID                = 'INST';
  53.     MIDIDataID                    = 'MIDI';
  54.     AudioRecordingID            = 'AESD';
  55.     ApplicationSpecificID        = 'APPL';
  56.     CommentID                    = 'COMT';
  57.     NameID                        = 'NAME';
  58.     AuthorID                    = 'AUTH';
  59.     CopyrightID                    = '(c) ';
  60.     AnnotationID                = 'ANNO';
  61.  
  62.     NoLooping                    = 0;
  63.     ForwardLooping                = 1;
  64.     ForwardBackwardLooping        = 2;                            {  AIFF-C Versions  }
  65.     AIFCVersion1                = $A2805140;
  66.  
  67.  
  68. { Compression Names }
  69.     NoneName     = 'not compressed';
  70.     ACE2to1Name  = 'ACE 2-to-1';
  71.     ACE8to3Name  = 'ACE 8-to-3';
  72.     MACE3to1Name = 'MACE 3-to-1';
  73.     MACE6to1Name = 'MACE 6-to-1';
  74.  
  75.  
  76.                                                                 {  Compression Types  }
  77.     NoneType                    = 'NONE';
  78.     ACE2Type                    = 'ACE2';
  79.     ACE8Type                    = 'ACE8';
  80.     MACE3Type                    = 'MAC3';
  81.     MACE6Type                    = 'MAC6';
  82.  
  83.  
  84. TYPE
  85.     ID                                    = LONGINT;
  86.     MarkerIdType                        = INTEGER;
  87.     ChunkHeaderPtr = ^ChunkHeader;
  88.     ChunkHeader = RECORD
  89.         ckID:                    ID;
  90.         ckSize:                    LONGINT;
  91.     END;
  92.  
  93.     ContainerChunkPtr = ^ContainerChunk;
  94.     ContainerChunk = RECORD
  95.         ckID:                    ID;
  96.         ckSize:                    LONGINT;
  97.         formType:                ID;
  98.     END;
  99.  
  100.     FormatVersionChunkPtr = ^FormatVersionChunk;
  101.     FormatVersionChunk = RECORD
  102.         ckID:                    ID;
  103.         ckSize:                    LONGINT;
  104.         timestamp:                LONGINT;
  105.     END;
  106.  
  107.     CommonChunkPtr = ^CommonChunk;
  108.     CommonChunk = RECORD
  109.         ckID:                    ID;
  110.         ckSize:                    LONGINT;
  111.         numChannels:            INTEGER;
  112.         numSampleFrames:        LONGINT;
  113.         sampleSize:                INTEGER;
  114.         sampleRate:                extended80;
  115.     END;
  116.  
  117.     ExtCommonChunkPtr = ^ExtCommonChunk;
  118.     ExtCommonChunk = RECORD
  119.         ckID:                    ID;
  120.         ckSize:                    LONGINT;
  121.         numChannels:            INTEGER;
  122.         numSampleFrames:        LONGINT;
  123.         sampleSize:                INTEGER;
  124.         sampleRate:                extended80;
  125.         compressionType:        ID;
  126.         compressionName:        SInt8;                                    {  variable length array, Pascal string  }
  127.     END;
  128.  
  129.     SoundDataChunkPtr = ^SoundDataChunk;
  130.     SoundDataChunk = RECORD
  131.         ckID:                    ID;
  132.         ckSize:                    LONGINT;
  133.         offset:                    LONGINT;
  134.         blockSize:                LONGINT;
  135.     END;
  136.  
  137.     MarkerPtr = ^Marker;
  138.     Marker = RECORD
  139.         id:                        MarkerIdType;
  140.         position:                LONGINT;
  141.         markerName:                Str255;
  142.     END;
  143.  
  144.     MarkerChunkPtr = ^MarkerChunk;
  145.     MarkerChunk = RECORD
  146.         ckID:                    ID;
  147.         ckSize:                    LONGINT;
  148.         numMarkers:                INTEGER;
  149.         Markers:                ARRAY [0..0] OF Marker;                    {  variable length array  }
  150.     END;
  151.  
  152.     AIFFLoopPtr = ^AIFFLoop;
  153.     AIFFLoop = RECORD
  154.         playMode:                INTEGER;
  155.         beginLoop:                MarkerIdType;
  156.         endLoop:                MarkerIdType;
  157.     END;
  158.  
  159.     InstrumentChunkPtr = ^InstrumentChunk;
  160.     InstrumentChunk = PACKED RECORD
  161.         ckID:                    ID;
  162.         ckSize:                    LONGINT;
  163.         baseFrequency:            UInt8;
  164.         detune:                    UInt8;
  165.         lowFrequency:            UInt8;
  166.         highFrequency:            UInt8;
  167.         lowVelocity:            UInt8;
  168.         highVelocity:            UInt8;
  169.         gain:                    INTEGER;
  170.         sustainLoop:            AIFFLoop;
  171.         releaseLoop:            AIFFLoop;
  172.     END;
  173.  
  174.     MIDIDataChunkPtr = ^MIDIDataChunk;
  175.     MIDIDataChunk = RECORD
  176.         ckID:                    ID;
  177.         ckSize:                    LONGINT;
  178.         MIDIdata:                SInt8;                                    {  variable length array  }
  179.     END;
  180.  
  181.     AudioRecordingChunkPtr = ^AudioRecordingChunk;
  182.     AudioRecordingChunk = RECORD
  183.         ckID:                    ID;
  184.         ckSize:                    LONGINT;
  185.         AESChannelStatus:        PACKED ARRAY [0..23] OF UInt8;
  186.     END;
  187.  
  188.     ApplicationSpecificChunkPtr = ^ApplicationSpecificChunk;
  189.     ApplicationSpecificChunk = RECORD
  190.         ckID:                    ID;
  191.         ckSize:                    LONGINT;
  192.         applicationSignature:    OSType;
  193.         data:                    SInt8;                                    {  variable length array  }
  194.     END;
  195.  
  196.     CommentPtr = ^Comment;
  197.     Comment = RECORD
  198.         timeStamp:                LONGINT;
  199.         marker:                    MarkerIdType;
  200.         count:                    INTEGER;
  201.         text:                    SInt8;                                    {  variable length array, Pascal string  }
  202.     END;
  203.  
  204.     CommentsChunkPtr = ^CommentsChunk;
  205.     CommentsChunk = RECORD
  206.         ckID:                    ID;
  207.         ckSize:                    LONGINT;
  208.         numComments:            INTEGER;
  209.         comments:                ARRAY [0..0] OF Comment;                {  variable length array  }
  210.     END;
  211.  
  212.     TextChunkPtr = ^TextChunk;
  213.     TextChunk = RECORD
  214.         ckID:                    ID;
  215.         ckSize:                    LONGINT;
  216.         text:                    SInt8;                                    {  variable length array, Pascal string  }
  217.     END;
  218.  
  219. {$ALIGN RESET}
  220. {$POP}
  221.  
  222. {$SETC UsingIncludes := AIFFIncludes}
  223.  
  224. {$ENDC} {__AIFF__}
  225.  
  226. {$IFC NOT UsingIncludes}
  227.  END.
  228. {$ENDC}
  229.